package com.example.sunweihao;


import com.example.sunweihao.listener.OnClickListener;
import com.example.sunweihao.listener.OnTouchListener;

/**
 * 子控件
 */
public class View {
    //这里是控件的四个边界，用这些边界可以用来判断点击的位置是否在范围内
    private int left;
    private int top;
    private int right;
    private int bottom;
    //触摸事件
    private OnTouchListener onTouchListener;
    public void setOnTouchListener(OnTouchListener onTouchListener){
        this.onTouchListener=onTouchListener;
    };
    //点击事件
    private OnClickListener onClickListener;
    public void setOnClickListener(OnClickListener onClickListener){
        this.onClickListener=onClickListener;
    }
    public View(){}
    //为View的构造方法设置参数，这些参数可以用来判断跟触摸点的距离
    public View(int left, int top, int right, int bottom) {
        this.left = left;
        this.top = top;
        this.right = right;
        this.bottom = bottom;
    }
    //TODO:缺代码
    /**
     * 判断事件是否能触摸事件
     * @param eventX 触摸点的X坐标
     * @param eventY 触摸点的Y坐标
     * @return true表示可以接收触摸事件，false表示不可以接收触摸事件
     */
    public boolean isContainer(int eventX,int eventY){
        if (eventX>=left&&eventX<right&&eventY>=top&&eventY<bottom) {
            return true;
        }
    }
    //接收分发的代码
    public boolean dispatchTouchEvent(MotionEvent event){
        //消费,默认为false
        boolean result=false;

        if(onTouchListener!=null&&onTouchListener.onTouch(this,event)){
            result=true;
        }
        //不消费且触摸事件返回为true
        if (!result&&onTouchEvent(event)){

        }
    }
    //mOnTouchListener onClickListener.OnClick
    private boolean onTouchEvent(MotionEvent event) {

    }
}